package com.yvon.service.demo.spring.beans.factory.config;

import com.yvon.service.demo.spring.beans.BeansException;
import com.yvon.service.demo.spring.beans.factory.ConfigurableListableBeanFactory;

/**
 * bean工厂后置处理器
 *
 * 用于在Bean对象注册后，未实例化之前，修改Bean对象的定义信息Definition
 *
 * @author : Yvon
 * @since : 2022-12-06
 */
public interface BeanFactoryPostProcessor {

    /**
     * 在所有的 BeanDefinition 加载完成后，且将 Bean 对象实例化之前，提供修改BeanDefinition 属性的机制
     *
     * @param beanFactory bean工厂
     */
    void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;
}
